home *** CD-ROM | disk | FTP | other *** search
/ PC go! 2017 October / PCgo 10-2017 CD-ROM Germany.iso / nw.pak / Unnamed File 004772.unknown < prev    next >
Encoding:
Text File  |  2015-07-29  |  39.5 KB  |  259 lines

  1. WebInspector.EditFileSystemDialog=function(fileSystemPath)
  2. {WebInspector.DialogDelegate.call(this);this._fileSystemPath=fileSystemPath;this.element=createElementWithClass("div","dialog-contents");var header=this.element.createChild("div","header");var headerText=header.createChild("span");headerText.textContent=WebInspector.UIString("Edit file system");var closeButton=header.createChild("div","close-button-gray done-button");closeButton.addEventListener("click",this._onDoneClick.bind(this),false);var contents=this.element.createChild("div","contents");WebInspector.isolatedFileSystemManager.mapping().addEventListener(WebInspector.FileSystemMapping.Events.FileMappingAdded,this._fileMappingAdded,this);WebInspector.isolatedFileSystemManager.mapping().addEventListener(WebInspector.FileSystemMapping.Events.FileMappingRemoved,this._fileMappingRemoved,this);WebInspector.isolatedFileSystemManager.excludedFolderManager().addEventListener(WebInspector.ExcludedFolderManager.Events.ExcludedFolderAdded,this._excludedFolderAdded,this);WebInspector.isolatedFileSystemManager.excludedFolderManager().addEventListener(WebInspector.ExcludedFolderManager.Events.ExcludedFolderRemoved,this._excludedFolderRemoved,this);var blockHeader=contents.createChild("div","block-header");blockHeader.textContent=WebInspector.UIString("Mappings");this._fileMappingsSection=contents.createChild("div","section");this._fileMappingsListContainer=this._fileMappingsSection.createChild("div","settings-list-container");var entries=WebInspector.isolatedFileSystemManager.mapping().mappingEntries(this._fileSystemPath);var urlColumn={id:"url",placeholder:WebInspector.UIString("URL prefix")};var pathColumn={id:"path",placeholder:WebInspector.UIString("Folder path")};this._fileMappingsList=new WebInspector.EditableSettingsList([urlColumn,pathColumn],this._fileMappingValuesProvider.bind(this),this._fileMappingValidate.bind(this),this._fileMappingEdit.bind(this));this._fileMappingsList.addEventListener(WebInspector.SettingsList.Events.Removed,this._fileMappingRemovedfromList.bind(this));this._fileMappingsList.element.classList.add("file-mappings-list");this._fileMappingsListContainer.appendChild(this._fileMappingsList.element);this._entries={};for(var i=0;i<entries.length;++i)
  3. this._addMappingRow(entries[i]);blockHeader=contents.createChild("div","block-header");blockHeader.textContent=WebInspector.UIString("Excluded folders");this._excludedFolderListSection=contents.createChild("div","section excluded-folders-section");this._excludedFolderListContainer=this._excludedFolderListSection.createChild("div","settings-list-container");var excludedFolderEntries=WebInspector.isolatedFileSystemManager.excludedFolderManager().excludedFolders(fileSystemPath);this._excludedFolderList=new WebInspector.EditableSettingsList([pathColumn],this._excludedFolderValueProvider.bind(this),this._excludedFolderValidate.bind(this),this._excludedFolderEdit.bind(this));this._excludedFolderList.addEventListener(WebInspector.SettingsList.Events.Removed,this._excludedFolderRemovedfromList.bind(this));this._excludedFolderList.element.classList.add("excluded-folders-list");this._excludedFolderListContainer.appendChild(this._excludedFolderList.element);this._excludedFolderEntries=new Map();for(var i=0;i<excludedFolderEntries.length;++i)
  4. this._addExcludedFolderRow(excludedFolderEntries[i]);this.element.tabIndex=0;this._hasMappingChanges=false;}
  5. WebInspector.EditFileSystemDialog.show=function(element,fileSystemPath)
  6. {var dialog=new WebInspector.EditFileSystemDialog(fileSystemPath);WebInspector.Dialog.show(element,dialog);var glassPane=dialog.element.ownerDocument.getElementById("glass-pane");glassPane.classList.add("settings-glass-pane");}
  7. WebInspector.EditFileSystemDialog.prototype={show:function(element)
  8. {this._dialogElement=element;element.appendChild(this.element);element.classList.add("settings-dialog","settings-tab");},_resize:function()
  9. {if(!this._dialogElement||!this._relativeToElement)
  10. return;const minWidth=200;const minHeight=150;var maxHeight=this._relativeToElement.offsetHeight-10;maxHeight=Math.max(minHeight,maxHeight);var maxWidth=Math.min(540,this._relativeToElement.offsetWidth-10);maxWidth=Math.max(minWidth,maxWidth);this._dialogElement.style.maxHeight=maxHeight+"px";this._dialogElement.style.width=maxWidth+"px";WebInspector.DialogDelegate.prototype.position(this._dialogElement,this._relativeToElement);},position:function(element,relativeToElement)
  11. {this._relativeToElement=relativeToElement;this._resize();},willHide:function(event)
  12. {if(!this._hasMappingChanges)
  13. return;if(window.confirm(WebInspector.UIString("It is recommended to restart DevTools after making these changes. Would you like to restart it?")))
  14. WebInspector.reload();},_fileMappingAdded:function(event)
  15. {var entry=(event.data);this._addMappingRow(entry);},_fileMappingRemoved:function(event)
  16. {var entry=(event.data);if(this._fileSystemPath!==entry.fileSystemPath)
  17. return;delete this._entries[entry.urlPrefix];if(this._fileMappingsList.itemForId(entry.urlPrefix))
  18. this._fileMappingsList.removeItem(entry.urlPrefix);this._resize();},_fileMappingValuesProvider:function(itemId,columnId)
  19. {if(!itemId)
  20. return"";var entry=this._entries[itemId];switch(columnId){case"url":return entry.urlPrefix;case"path":return entry.pathPrefix;default:console.assert("Should not be reached.");}
  21. return"";},_fileMappingValidate:function(itemId,data)
  22. {var oldPathPrefix=itemId?this._entries[itemId].pathPrefix:null;return this._validateMapping(data["url"],itemId,data["path"],oldPathPrefix);},_fileMappingEdit:function(itemId,data)
  23. {if(itemId){var urlPrefix=itemId;var pathPrefix=this._entries[itemId].pathPrefix;var fileSystemPath=this._entries[itemId].fileSystemPath;WebInspector.isolatedFileSystemManager.mapping().removeFileMapping(fileSystemPath,urlPrefix,pathPrefix);}
  24. this._addFileMapping(data["url"],data["path"]);},_validateMapping:function(urlPrefix,allowedURLPrefix,path,allowedPathPrefix)
  25. {var columns=[];if(!this._checkURLPrefix(urlPrefix,allowedURLPrefix))
  26. columns.push("url");if(!this._checkPathPrefix(path,allowedPathPrefix))
  27. columns.push("path");return columns;},_fileMappingRemovedfromList:function(event)
  28. {var urlPrefix=(event.data);if(!urlPrefix)
  29. return;var entry=this._entries[urlPrefix];WebInspector.isolatedFileSystemManager.mapping().removeFileMapping(entry.fileSystemPath,entry.urlPrefix,entry.pathPrefix);this._hasMappingChanges=true;},_addFileMapping:function(urlPrefix,pathPrefix)
  30. {var normalizedURLPrefix=this._normalizePrefix(urlPrefix);var normalizedPathPrefix=this._normalizePrefix(pathPrefix);WebInspector.isolatedFileSystemManager.mapping().addFileMapping(this._fileSystemPath,normalizedURLPrefix,normalizedPathPrefix);this._hasMappingChanges=true;this._fileMappingsList.selectItem(normalizedURLPrefix);return true;},_normalizePrefix:function(prefix)
  31. {if(!prefix)
  32. return"";return prefix+(prefix[prefix.length-1]==="/"?"":"/");},_addMappingRow:function(entry)
  33. {var fileSystemPath=entry.fileSystemPath;var urlPrefix=entry.urlPrefix;if(!this._fileSystemPath||this._fileSystemPath!==fileSystemPath)
  34. return;this._entries[urlPrefix]=entry;this._fileMappingsList.addItem(urlPrefix,null);this._resize();},_excludedFolderAdded:function(event)
  35. {var entry=(event.data);this._addExcludedFolderRow(entry);},_excludedFolderRemoved:function(event)
  36. {var entry=(event.data);var fileSystemPath=entry.fileSystemPath;if(!fileSystemPath||this._fileSystemPath!==fileSystemPath)
  37. return;delete this._excludedFolderEntries[entry.path];if(this._excludedFolderList.itemForId(entry.path))
  38. this._excludedFolderList.removeItem(entry.path);},_excludedFolderValueProvider:function(itemId,columnId)
  39. {return itemId;},_excludedFolderValidate:function(itemId,data)
  40. {var columns=[];if(!this._validateExcludedFolder(data["path"],itemId))
  41. columns.push("path");return columns;},_validateExcludedFolder:function(path,allowedPath)
  42. {return!!path&&(path===allowedPath||!this._excludedFolderEntries.has(path));},_excludedFolderEdit:function(itemId,data)
  43. {var fileSystemPath=this._fileSystemPath;if(itemId)
  44. WebInspector.isolatedFileSystemManager.excludedFolderManager().removeExcludedFolder(fileSystemPath,itemId);var excludedFolderPath=data["path"];WebInspector.isolatedFileSystemManager.excludedFolderManager().addExcludedFolder(fileSystemPath,excludedFolderPath);},_excludedFolderRemovedfromList:function(event)
  45. {var itemId=(event.data);if(!itemId)
  46. return;WebInspector.isolatedFileSystemManager.excludedFolderManager().removeExcludedFolder(this._fileSystemPath,itemId);},_addExcludedFolderRow:function(entry)
  47. {var fileSystemPath=entry.fileSystemPath;if(!fileSystemPath||this._fileSystemPath!==fileSystemPath)
  48. return;var path=entry.path;this._excludedFolderEntries.set(path,entry);this._excludedFolderList.addItem(path,null);this._resize();},_checkURLPrefix:function(value,allowedPrefix)
  49. {var prefix=this._normalizePrefix(value);return!!prefix&&(prefix===allowedPrefix||!this._entries[prefix]);},_checkPathPrefix:function(value,allowedPrefix)
  50. {var prefix=this._normalizePrefix(value);if(!prefix)
  51. return false;if(prefix===allowedPrefix)
  52. return true;for(var urlPrefix in this._entries){var entry=this._entries[urlPrefix];if(urlPrefix&&entry.pathPrefix===prefix)
  53. return false;}
  54. return true;},focus:function()
  55. {WebInspector.setCurrentFocusElement(this.element);},_onDoneClick:function()
  56. {WebInspector.Dialog.hide();},onEnter:function()
  57. {},__proto__:WebInspector.DialogDelegate.prototype};WebInspector.FrameworkBlackboxDialog=function()
  58. {WebInspector.DialogDelegate.call(this);this.element=createElementWithClass("div","blackbox-dialog dialog-contents");var header=this.element.createChild("div","header");header.createChild("span").textContent=WebInspector.UIString("Framework blackbox patterns");var closeButton=header.createChild("div","close-button-gray done-button");closeButton.addEventListener("click",this._onDoneClick.bind(this),false);var contents=this.element.createChild("div","contents");var contentScriptsSection=contents.createChild("div","blackbox-content-scripts");contentScriptsSection.appendChild(WebInspector.SettingsUI.createSettingCheckbox(WebInspector.UIString("Blackbox content scripts"),WebInspector.settings.skipContentScripts,true));var blockHeader=contents.createChild("div","columns-header");blockHeader.createChild("span").textContent=WebInspector.UIString("URI pattern");blockHeader.createChild("span").textContent=WebInspector.UIString("Behavior");var section=contents.createChild("div","section");var container=section.createChild("div","settings-list-container");this._blackboxLabel=WebInspector.UIString("Blackbox");this._disabledLabel=WebInspector.UIString("Disabled");var column1={id:"pattern",placeholder:"/framework\\.js$"};var column2={id:"value",options:[this._blackboxLabel,this._disabledLabel]};this._patternsList=new WebInspector.EditableSettingsList([column1,column2],this._patternValuesProvider.bind(this),this._patternValidate.bind(this),this._patternEdit.bind(this));this._patternsList.element.classList.add("blackbox-patterns-list");this._patternsList.addEventListener(WebInspector.SettingsList.Events.Removed,this._patternRemovedFromList.bind(this));container.appendChild(this._patternsList.element);this._entries=new Map();var patterns=WebInspector.settings.skipStackFramesPattern.getAsArray();for(var i=0;i<patterns.length;++i)
  59. this._addPattern(patterns[i].pattern,patterns[i].disabled);this.element.tabIndex=0;}
  60. WebInspector.FrameworkBlackboxDialog.show=function(element)
  61. {var dialog=new WebInspector.FrameworkBlackboxDialog();WebInspector.Dialog.show(element,dialog);var glassPane=dialog.element.ownerDocument.getElementById("glass-pane");glassPane.classList.add("settings-glass-pane");}
  62. WebInspector.FrameworkBlackboxDialog.prototype={show:function(element)
  63. {this._dialogElement=element;element.appendChild(this.element);element.classList.add("settings-dialog","settings-tab");},_resize:function()
  64. {if(!this._dialogElement||!this._relativeToElement)
  65. return;const minWidth=200;const minHeight=150;var maxHeight=this._relativeToElement.offsetHeight-10;maxHeight=Math.max(minHeight,maxHeight);var maxWidth=Math.min(540,this._relativeToElement.offsetWidth-10);maxWidth=Math.max(minWidth,maxWidth);this._dialogElement.style.maxHeight=maxHeight+"px";this._dialogElement.style.width=maxWidth+"px";WebInspector.DialogDelegate.prototype.position(this._dialogElement,this._relativeToElement);},position:function(element,relativeToElement)
  66. {this._relativeToElement=relativeToElement;this._resize();},willHide:function(event)
  67. {},_patternValuesProvider:function(itemId,columnId)
  68. {if(!itemId)
  69. return"";switch(columnId){case"pattern":return itemId;case"value":return(this._entries.get(itemId));default:console.assert("Should not be reached.");}
  70. return"";},_patternValidate:function(itemId,data)
  71. {var regex;var oldPattern=itemId;var newPattern=data["pattern"];try{if(newPattern&&(oldPattern===newPattern||!this._entries.has(newPattern)))
  72. regex=new RegExp(newPattern);}catch(e){}
  73. return regex?[]:["pattern"];},_patternEdit:function(itemId,data)
  74. {var oldPattern=itemId;var newPattern=data["pattern"];if(!newPattern)
  75. return;var disabled=(data["value"]===this._disabledLabel);var patterns=WebInspector.settings.skipStackFramesPattern.getAsArray();for(var i=0;i<=patterns.length;++i){if(i===patterns.length){patterns.push({pattern:newPattern,disabled:disabled});break;}
  76. if(patterns[i].pattern===oldPattern){patterns[i]={pattern:newPattern,disabled:disabled};break;}}
  77. WebInspector.settings.skipStackFramesPattern.setAsArray(patterns);if(oldPattern&&oldPattern===newPattern){this._entries.set(newPattern,disabled?this._disabledLabel:this._blackboxLabel);this._patternsList.itemForId(oldPattern).classList.toggle("disabled",disabled);this._patternsList.refreshItem(newPattern);return;}
  78. if(oldPattern){this._patternsList.removeItem(oldPattern);this._entries.remove(oldPattern);}
  79. this._addPattern(newPattern,disabled);},_patternRemovedFromList:function(event)
  80. {var pattern=(event.data);if(!pattern)
  81. return;this._entries.remove(pattern);var patterns=WebInspector.settings.skipStackFramesPattern.getAsArray();for(var i=0;i<patterns.length;++i){if(patterns[i].pattern===pattern){patterns.splice(i,1);break;}}
  82. WebInspector.settings.skipStackFramesPattern.setAsArray(patterns);},_addPattern:function(pattern,disabled)
  83. {if(!pattern||this._entries.has(pattern))
  84. return;this._entries.set(pattern,disabled?this._disabledLabel:this._blackboxLabel);var listItem=this._patternsList.addItem(pattern,null);listItem.classList.toggle("disabled",disabled);this._resize();},focus:function()
  85. {WebInspector.setCurrentFocusElement(this.element);},_onDoneClick:function()
  86. {WebInspector.Dialog.hide();},onEnter:function(event)
  87. {var focusElement=WebInspector.currentFocusElement();var nodeName=focusElement&&focusElement.nodeName.toLowerCase();if(nodeName==="input"||nodeName==="select"){this.focus();event.consume(true);return;}},__proto__:WebInspector.DialogDelegate.prototype};WebInspector.SettingsScreen=function(onHide)
  88. {WebInspector.HelpScreen.call(this);this.element.id="settings-screen";this._onHide=onHide;this._contentElement=this.element.createChild("div","help-window-main");var settingsLabelElement=createElementWithClass("div","help-window-label");settingsLabelElement.createTextChild(WebInspector.UIString("Settings"));this._contentElement.appendChild(this._createCloseButton());this._tabbedPane=new WebInspector.TabbedPane();this._tabbedPane.insertBeforeTabStrip(settingsLabelElement);this._tabbedPane.appendTab(WebInspector.SettingsScreen.Tabs.General,WebInspector.UIString("General"),new WebInspector.GenericSettingsTab());this._tabbedPane.appendTab(WebInspector.SettingsScreen.Tabs.Workspace,WebInspector.UIString("Workspace"),new WebInspector.WorkspaceSettingsTab());if(Runtime.experiments.supportEnabled())
  89. this._tabbedPane.appendTab(WebInspector.SettingsScreen.Tabs.Experiments,WebInspector.UIString("Experiments"),new WebInspector.ExperimentsSettingsTab());this._tabbedPane.appendTab(WebInspector.SettingsScreen.Tabs.Shortcuts,WebInspector.UIString("Shortcuts"),WebInspector.shortcutsScreen.createShortcutsTabView());this._tabbedPane.setShrinkableTabs(false);this._tabbedPane.setVerticalTabLayout(true);this._lastSelectedTabSetting=WebInspector.settings.createSetting("lastSelectedSettingsTab",WebInspector.SettingsScreen.Tabs.General);this.selectTab(this._lastSelectedTabSetting.get());this._tabbedPane.addEventListener(WebInspector.TabbedPane.EventTypes.TabSelected,this._tabSelected,this);this.element.addEventListener("keydown",this._keyDown.bind(this),false);this._developerModeCounter=0;}
  90. WebInspector.SettingsScreen.integerValidator=function(min,max,text)
  91. {var value=Number(text);if(isNaN(value))
  92. return WebInspector.UIString("Invalid number format");if(value<min||value>max)
  93. return WebInspector.UIString("Value is out of range [%d, %d]",min,max);return null;}
  94. WebInspector.SettingsScreen.Tabs={General:"general",Overrides:"overrides",Workspace:"workspace",Experiments:"experiments",Shortcuts:"shortcuts"}
  95. WebInspector.SettingsScreen.prototype={selectTab:function(tabId)
  96. {this._tabbedPane.selectTab(tabId);},_tabSelected:function(event)
  97. {this._lastSelectedTabSetting.set(this._tabbedPane.selectedTabId);},wasShown:function()
  98. {this._tabbedPane.show(this._contentElement);WebInspector.HelpScreen.prototype.wasShown.call(this);},isClosingKey:function(keyCode)
  99. {return[WebInspector.KeyboardShortcut.Keys.Enter.code,WebInspector.KeyboardShortcut.Keys.Esc.code,].indexOf(keyCode)>=0;},willHide:function()
  100. {this._onHide();WebInspector.HelpScreen.prototype.willHide.call(this);},_keyDown:function(event)
  101. {var shiftKeyCode=16;if(event.keyCode===shiftKeyCode&&++this._developerModeCounter>5)
  102. this.element.classList.add("settings-developer-mode");},__proto__:WebInspector.HelpScreen.prototype}
  103. WebInspector.SettingsTab=function(name,id)
  104. {WebInspector.VBox.call(this);this.element.classList.add("settings-tab-container");if(id)
  105. this.element.id=id;var header=this.element.createChild("header");header.createChild("h3").createTextChild(name);this.containerElement=this.element.createChild("div","help-container-wrapper").createChild("div","settings-tab help-content help-container");}
  106. WebInspector.SettingsTab.prototype={_appendSection:function(name)
  107. {var block=this.containerElement.createChild("div","help-block");if(name)
  108. block.createChild("div","help-section-title").textContent=name;return block;},_createSelectSetting:function(name,options,setting)
  109. {var p=createElement("p");p.createChild("label").textContent=name;var select=p.createChild("select","chrome-select");var settingValue=setting.get();for(var i=0;i<options.length;++i){var option=options[i];select.add(new Option(option[0],option[1]));if(settingValue===option[1])
  110. select.selectedIndex=i;}
  111. function changeListener(e)
  112. {setting.set(options[select.selectedIndex][1]);}
  113. select.addEventListener("change",changeListener,false);return p;},__proto__:WebInspector.VBox.prototype}
  114. WebInspector.GenericSettingsTab=function()
  115. {WebInspector.SettingsTab.call(this,WebInspector.UIString("General"),"general-tab-content");this._populateSectionsFromExtensions();this._appendSection().appendChild(createTextButton(WebInspector.UIString("Restore defaults and reload"),restoreAndReload));function restoreAndReload()
  116. {if(window.localStorage)
  117. window.localStorage.clear();WebInspector.reload();}}
  118. WebInspector.GenericSettingsTab.prototype={_populateSectionsFromExtensions:function()
  119. {var explicitSectionOrder=["","Appearance","Elements","Sources","Network","Profiler","Console","Extensions"];var allExtensions=self.runtime.extensions("ui-setting");var extensionsBySectionId=new StringMultimap();var childSettingExtensionsByParentName=new StringMultimap();allExtensions.forEach(function(extension){var descriptor=extension.descriptor();var sectionName=descriptor["section"]||"";if(!sectionName&&descriptor["parentSettingName"]){childSettingExtensionsByParentName.set(descriptor["parentSettingName"],extension);return;}
  120. extensionsBySectionId.set(sectionName,extension);});var sectionIds=extensionsBySectionId.keysArray();var explicitlyOrderedSections=explicitSectionOrder.keySet();for(var i=0;i<explicitSectionOrder.length;++i){var extensions=extensionsBySectionId.get(explicitSectionOrder[i]);if(!extensions.size)
  121. continue;this._addSectionWithExtensionProvidedSettings(explicitSectionOrder[i],extensions.valuesArray(),childSettingExtensionsByParentName);}
  122. for(var i=0;i<sectionIds.length;++i){if(explicitlyOrderedSections[sectionIds[i]])
  123. continue;this._addSectionWithExtensionProvidedSettings(sectionIds[i],extensionsBySectionId.get(sectionIds[i]).valuesArray(),childSettingExtensionsByParentName);}},_addSectionWithExtensionProvidedSettings:function(sectionName,extensions,childSettingExtensionsByParentName)
  124. {var uiSectionName=sectionName&&WebInspector.UIString(sectionName);var sectionElement=this._appendSection(uiSectionName);extensions.forEach(processSetting.bind(this,null));function processSetting(parentFieldset,extension)
  125. {var descriptor=extension.descriptor();var experimentName=descriptor["experiment"];if(experimentName&&!Runtime.experiments.isEnabled(experimentName))
  126. return;if(descriptor["settingType"]==="custom"){extension.instancePromise().then(appendCustomSetting);return;}
  127. var uiTitle=WebInspector.UIString(descriptor["title"]);var settingName=descriptor["settingName"];var setting=WebInspector.settings[settingName];var settingControl=createSettingControl.call(this,uiTitle,setting,descriptor);if(settingName){var childSettings=childSettingExtensionsByParentName.get(settingName);if(childSettings.size){var fieldSet=WebInspector.SettingsUI.createSettingFieldset(setting);settingControl.appendChild(fieldSet);childSettings.valuesArray().forEach(function(item){processSetting.call(this,fieldSet,item);},this);}}
  128. appendAsChild(settingControl);function appendCustomSetting(object)
  129. {var uiSettingDelegate=(object);var element=uiSettingDelegate.settingElement();if(element)
  130. appendAsChild(element);}
  131. function appendAsChild(settingControl)
  132. {(parentFieldset||sectionElement).appendChild((settingControl));}}
  133. function createSettingControl(uiTitle,setting,descriptor)
  134. {switch(descriptor["settingType"]){case"checkbox":return WebInspector.SettingsUI.createSettingCheckbox(uiTitle,setting);case"select":var descriptorOptions=descriptor["options"];var options=new Array(descriptorOptions.length);for(var i=0;i<options.length;++i){var optionName=descriptorOptions[i][2]?descriptorOptions[i][0]:WebInspector.UIString(descriptorOptions[i][0]);options[i]=[optionName,descriptorOptions[i][1]];}
  135. return this._createSelectSetting(uiTitle,options,setting);default:throw"Invalid setting type: "+descriptor["settingType"];}}},__proto__:WebInspector.SettingsTab.prototype}
  136. WebInspector.SettingsScreen.SkipStackFramePatternSettingDelegate=function()
  137. {WebInspector.UISettingDelegate.call(this);}
  138. WebInspector.SettingsScreen.SkipStackFramePatternSettingDelegate.prototype={settingElement:function()
  139. {return createTextButton(WebInspector.manageBlackboxingButtonLabel(),this._onManageButtonClick.bind(this),"",WebInspector.UIString("Skip stepping through sources with particular names"));},_onManageButtonClick:function()
  140. {WebInspector.FrameworkBlackboxDialog.show(WebInspector.inspectorView.element);},__proto__:WebInspector.UISettingDelegate.prototype}
  141. WebInspector.WorkspaceSettingsTab=function()
  142. {WebInspector.SettingsTab.call(this,WebInspector.UIString("Workspace"),"workspace-tab-content");WebInspector.isolatedFileSystemManager.addEventListener(WebInspector.IsolatedFileSystemManager.Events.FileSystemAdded,this._fileSystemAdded,this);WebInspector.isolatedFileSystemManager.addEventListener(WebInspector.IsolatedFileSystemManager.Events.FileSystemRemoved,this._fileSystemRemoved,this);this._commonSection=this._appendSection(WebInspector.UIString("Common"));var folderExcludePatternInput=WebInspector.SettingsUI.createSettingInputField(WebInspector.UIString("Folder exclude pattern"),WebInspector.settings.workspaceFolderExcludePattern,false,0,"270px",WebInspector.SettingsUI.regexValidator);this._commonSection.appendChild(folderExcludePatternInput);this._fileSystemsSection=this._appendSection(WebInspector.UIString("Folders"));this._fileSystemsListContainer=this._fileSystemsSection.createChild("p","settings-list-container");this._addFileSystemRowElement=this._fileSystemsSection.createChild("div");this._addFileSystemRowElement.appendChild(createTextButton(WebInspector.UIString("Add folder\u2026"),this._addFileSystemClicked.bind(this)));this._editFileSystemButton=createTextButton(WebInspector.UIString("Folder options\u2026"),this._editFileSystemClicked.bind(this));this._addFileSystemRowElement.appendChild(this._editFileSystemButton);this._updateEditFileSystemButtonState();this._reset();}
  143. WebInspector.WorkspaceSettingsTab.prototype={wasShown:function()
  144. {WebInspector.SettingsTab.prototype.wasShown.call(this);this._reset();},_reset:function()
  145. {this._resetFileSystems();},_resetFileSystems:function()
  146. {this._fileSystemsListContainer.removeChildren();var fileSystemPaths=WebInspector.isolatedFileSystemManager.mapping().fileSystemPaths();delete this._fileSystemsList;if(!fileSystemPaths.length){var noFileSystemsMessageElement=this._fileSystemsListContainer.createChild("div","no-file-systems-message");noFileSystemsMessageElement.textContent=WebInspector.UIString("You have no file systems added.");return;}
  147. this._fileSystemsList=new WebInspector.SettingsList([{id:"path"}],this._renderFileSystem.bind(this));this._fileSystemsList.element.classList.add("file-systems-list");this._fileSystemsList.addEventListener(WebInspector.SettingsList.Events.Selected,this._fileSystemSelected.bind(this));this._fileSystemsList.addEventListener(WebInspector.SettingsList.Events.Removed,this._fileSystemRemovedfromList.bind(this));this._fileSystemsList.addEventListener(WebInspector.SettingsList.Events.DoubleClicked,this._fileSystemDoubleClicked.bind(this));this._fileSystemsListContainer.appendChild(this._fileSystemsList.element);for(var i=0;i<fileSystemPaths.length;++i)
  148. this._fileSystemsList.addItem(fileSystemPaths[i]);this._updateEditFileSystemButtonState();},_updateEditFileSystemButtonState:function()
  149. {this._editFileSystemButton.disabled=!this._selectedFileSystemPath();},_fileSystemSelected:function(event)
  150. {this._updateEditFileSystemButtonState();},_fileSystemDoubleClicked:function(event)
  151. {var id=(event.data);this._editFileSystem(id);},_editFileSystemClicked:function()
  152. {this._editFileSystem(this._selectedFileSystemPath());},_editFileSystem:function(id)
  153. {WebInspector.EditFileSystemDialog.show(WebInspector.inspectorView.element,id);},_renderFileSystem:function(columnElement,column,id)
  154. {if(!id)
  155. return"";var fileSystemPath=id;var textElement=columnElement.createChild("span","list-column-text");var pathElement=textElement.createChild("span","file-system-path");pathElement.title=fileSystemPath;const maxTotalPathLength=55;const maxFolderNameLength=30;var lastIndexOfSlash=fileSystemPath.lastIndexOf(WebInspector.isWin()?"\\":"/");var folderName=fileSystemPath.substr(lastIndexOfSlash+1);var folderPath=fileSystemPath.substr(0,lastIndexOfSlash+1);folderPath=folderPath.trimMiddle(maxTotalPathLength-Math.min(maxFolderNameLength,folderName.length));folderName=folderName.trimMiddle(maxFolderNameLength);var folderPathElement=pathElement.createChild("span");folderPathElement.textContent=folderPath;var nameElement=pathElement.createChild("span","file-system-path-name");nameElement.textContent=folderName;},_fileSystemRemovedfromList:function(event)
  156. {var id=(event.data);if(!id)
  157. return;WebInspector.isolatedFileSystemManager.removeFileSystem(id);},_addFileSystemClicked:function()
  158. {WebInspector.isolatedFileSystemManager.addFileSystem();},_fileSystemAdded:function(event)
  159. {var fileSystem=(event.data);if(!this._fileSystemsList)
  160. this._reset();else
  161. this._fileSystemsList.addItem(fileSystem.path());},_fileSystemRemoved:function(event)
  162. {var fileSystem=(event.data);if(this._fileSystemsList.itemForId(fileSystem.path()))
  163. this._fileSystemsList.removeItem(fileSystem.path());if(!this._fileSystemsList.itemIds().length)
  164. this._reset();this._updateEditFileSystemButtonState();},_selectedFileSystemPath:function()
  165. {return this._fileSystemsList?this._fileSystemsList.selectedId():null;},__proto__:WebInspector.SettingsTab.prototype}
  166. WebInspector.ExperimentsSettingsTab=function()
  167. {WebInspector.SettingsTab.call(this,WebInspector.UIString("Experiments"),"experiments-tab-content");var experiments=Runtime.experiments.allConfigurableExperiments();if(experiments.length){var experimentsSection=this._appendSection();experimentsSection.appendChild(this._createExperimentsWarningSubsection());for(var i=0;i<experiments.length;++i)
  168. experimentsSection.appendChild(this._createExperimentCheckbox(experiments[i]));}}
  169. WebInspector.ExperimentsSettingsTab.prototype={_createExperimentsWarningSubsection:function()
  170. {var subsection=createElement("div");var warning=subsection.createChild("span","settings-experiments-warning-subsection-warning");warning.textContent=WebInspector.UIString("WARNING:");subsection.createTextChild(" ");var message=subsection.createChild("span","settings-experiments-warning-subsection-message");message.textContent=WebInspector.UIString("These experiments could be dangerous and may require restart.");return subsection;},_createExperimentCheckbox:function(experiment)
  171. {var label=createCheckboxLabel(WebInspector.UIString(experiment.title),experiment.isEnabled());var input=label.checkboxElement;input.name=experiment.name;function listener()
  172. {experiment.setEnabled(input.checked);}
  173. input.addEventListener("click",listener,false);var p=createElement("p");p.className=experiment.hidden&&!experiment.isEnabled()?"settings-experiment-hidden":"";p.appendChild(label);return p;},__proto__:WebInspector.SettingsTab.prototype}
  174. WebInspector.SettingsController=function()
  175. {this._settingsScreen;this._resizeBound=this._resize.bind(this);}
  176. WebInspector.SettingsController.prototype={_onHideSettingsScreen:function()
  177. {var window=this._settingsScreen.element.ownerDocument.defaultView;window.removeEventListener("resize",this._resizeBound,false);delete this._settingsScreenVisible;},showSettingsScreen:function(tabId)
  178. {if(!this._settingsScreen)
  179. this._settingsScreen=new WebInspector.SettingsScreen(this._onHideSettingsScreen.bind(this));if(tabId)
  180. this._settingsScreen.selectTab(tabId);this._settingsScreen.showModal();this._settingsScreenVisible=true;var window=this._settingsScreen.element.ownerDocument.defaultView;window.addEventListener("resize",this._resizeBound,false);},_resize:function()
  181. {if(this._settingsScreen&&this._settingsScreen.isShowing())
  182. this._settingsScreen.doResize();}}
  183. WebInspector.SettingsController.SettingsScreenActionDelegate=function(){}
  184. WebInspector.SettingsController.SettingsScreenActionDelegate.prototype={handleAction:function()
  185. {WebInspector._settingsController.showSettingsScreen(WebInspector.SettingsScreen.Tabs.General);return true;}}
  186. WebInspector.SettingsList=function(columns,itemRenderer)
  187. {this.element=createElementWithClass("div","settings-list");this.element.tabIndex=-1;this._itemRenderer=itemRenderer;this._listItems=new Map();this._ids=[];this._columns=columns;}
  188. WebInspector.SettingsList.Events={Selected:"Selected",Removed:"Removed",DoubleClicked:"DoubleClicked",}
  189. WebInspector.SettingsList.prototype={addItem:function(itemId,beforeId)
  190. {var listItem=createElementWithClass("div","settings-list-item");listItem._id=itemId;if(typeof beforeId!=="undefined")
  191. this.element.insertBefore(listItem,this.itemForId(beforeId));else
  192. this.element.appendChild(listItem);var listItemContents=listItem.createChild("div","settings-list-item-contents");var listItemColumnsElement=listItemContents.createChild("div","settings-list-item-columns");listItem.columnElements={};for(var i=0;i<this._columns.length;++i){var column=this._columns[i];var columnElement=listItemColumnsElement.createChild("div","list-column settings-list-column-"+column.id);listItem.columnElements[column.id]=columnElement;this._itemRenderer(columnElement,column,itemId);}
  193. var removeItemButton=this._createRemoveButton(removeItemClicked.bind(this));listItemContents.addEventListener("click",this.selectItem.bind(this,itemId),false);listItemContents.addEventListener("dblclick",this._onDoubleClick.bind(this,itemId),false);listItemContents.appendChild(removeItemButton);this._listItems.set(itemId||"",listItem);if(typeof beforeId!=="undefined")
  194. this._ids.splice(this._ids.indexOf(beforeId),0,itemId);else
  195. this._ids.push(itemId);function removeItemClicked(event)
  196. {removeItemButton.disabled=true;this.removeItem(itemId);this.dispatchEventToListeners(WebInspector.SettingsList.Events.Removed,itemId);event.consume();}
  197. return listItem;},removeItem:function(id)
  198. {var listItem=this._listItems.remove(id||"");if(listItem)
  199. listItem.remove();this._ids.remove(id);if(id===this._selectedId){delete this._selectedId;if(this._ids.length)
  200. this.selectItem(this._ids[0]);}},itemIds:function()
  201. {return this._ids.slice();},columns:function()
  202. {return this._columns.select("id");},selectedId:function()
  203. {return this._selectedId;},selectedItem:function()
  204. {return this._selectedId?this.itemForId(this._selectedId):null;},itemForId:function(itemId)
  205. {return this._listItems.get(itemId||"")||null;},_onDoubleClick:function(id,event)
  206. {this.dispatchEventToListeners(WebInspector.SettingsList.Events.DoubleClicked,id);},selectItem:function(id,event)
  207. {if(typeof this._selectedId!=="undefined")
  208. this.itemForId(this._selectedId).classList.remove("selected");this._selectedId=id;if(typeof this._selectedId!=="undefined")
  209. this.itemForId(this._selectedId).classList.add("selected");this.dispatchEventToListeners(WebInspector.SettingsList.Events.Selected,id);if(event)
  210. event.consume();},_createRemoveButton:function(handler)
  211. {var removeButton=createElementWithClass("div","remove-item-button");removeButton.addEventListener("click",handler,false);return removeButton;},__proto__:WebInspector.Object.prototype}
  212. WebInspector.EditableSettingsList=function(columns,valuesProvider,validateHandler,editHandler)
  213. {WebInspector.SettingsList.call(this,columns,this._renderColumn.bind(this));this._valuesProvider=valuesProvider;this._validateHandler=validateHandler;this._editHandler=editHandler;this._addInputElements=new Map();this._editInputElements=new Map();this._textElements=new Map();this._addMappingItem=this.addItem(null);this._addMappingItem.classList.add("item-editing","add-list-item");}
  214. WebInspector.EditableSettingsList.prototype={addItem:function(itemId,beforeId)
  215. {var listItem=WebInspector.SettingsList.prototype.addItem.call(this,itemId,beforeId);listItem.classList.add("editable");return listItem;},refreshItem:function(itemId)
  216. {if(!itemId)
  217. return;var listItem=this.itemForId(itemId);if(!listItem)
  218. return;for(var i=0;i<this._columns.length;++i){var column=this._columns[i];var columnId=column.id;var value=this._valuesProvider(itemId,columnId);this._setTextElementContent(itemId,columnId,value);var editElement=this._editInputElements.get(itemId).get(columnId);this._setEditElementValue(editElement,value||"");}},_textElementContent:function(itemId,columnId)
  219. {if(!itemId)
  220. return"";return this._textElements.get(itemId).get(columnId).textContent.replace(/\u200B/g,"");},_setTextElementContent:function(itemId,columnId,text)
  221. {var textElement=this._textElements.get(itemId).get(columnId);textElement.textContent=text.replace(/.{4}/g,"$&\u200B");textElement.title=text;},_renderColumn:function(columnElement,column,itemId)
  222. {var columnId=column.id;if(itemId===null){this._createEditElement(columnElement,column,itemId);return;}
  223. var validItemId=itemId;if(!this._editInputElements.has(itemId))
  224. this._editInputElements.set(itemId,new Map());if(!this._textElements.has(itemId))
  225. this._textElements.set(itemId,new Map());var value=this._valuesProvider(itemId,columnId);var textElement=(columnElement.createChild("span","list-column-text"));columnElement.addEventListener("click",rowClicked.bind(this),false);this._textElements.get(itemId).set(columnId,textElement);this._setTextElementContent(itemId,columnId,value);this._createEditElement(columnElement,column,itemId,value);function rowClicked(event)
  226. {if(itemId===this._editingId)
  227. return;console.assert(!this._editingId);this._editingId=validItemId;var listItem=this.itemForId(validItemId);listItem.classList.add("item-editing");var editElement=event.target.editElement||this._editInputElements.get(validItemId).get(this.columns()[0]);editElement.focus();if(editElement.select)
  228. editElement.select();}},_createEditElement:function(columnElement,column,itemId,value)
  229. {var options=column.options;if(options){var editElement=(columnElement.createChild("select","chrome-select list-column-editor"));for(var i=0;i<options.length;++i){var option=editElement.createChild("option");option.value=options[i];option.textContent=options[i];}
  230. editElement.addEventListener("blur",this._editMappingBlur.bind(this,itemId),false);editElement.addEventListener("change",this._editMappingBlur.bind(this,itemId),false);}else{var editElement=(columnElement.createChild("input","list-column-editor"));editElement.addEventListener("blur",this._editMappingBlur.bind(this,itemId),false);editElement.addEventListener("input",this._validateEdit.bind(this,itemId),false);if(itemId===null)
  231. editElement.placeholder=column.placeholder||"";}
  232. if(itemId===null)
  233. this._addInputElements.set(column.id,editElement);else
  234. this._editInputElements.get(itemId).set(column.id,editElement);this._setEditElementValue(editElement,value||"");columnElement.editElement=editElement;return editElement;},_setEditElementValue:function(editElement,value)
  235. {if(!editElement)
  236. return;if(editElement instanceof HTMLSelectElement){var options=editElement.options;for(var i=0;i<options.length;++i)
  237. options[i].selected=(options[i].value===value);}else{editElement.value=value;}},_data:function(itemId)
  238. {var inputElements=this._inputElements(itemId);var data={__proto__:null};var columns=this.columns();for(var i=0;i<columns.length;++i)
  239. data[columns[i]]=inputElements.get(columns[i]).value;return data;},_inputElements:function(itemId)
  240. {if(!itemId)
  241. return this._addInputElements;return this._editInputElements.get(itemId)||null;},_validateEdit:function(itemId)
  242. {var errorColumns=this._validateHandler(itemId,this._data(itemId));var hasChanges=this._hasChanges(itemId);var columns=this.columns();for(var i=0;i<columns.length;++i){var columnId=columns[i];var inputElement=this._inputElements(itemId).get(columnId);if(hasChanges&&errorColumns.indexOf(columnId)!==-1)
  243. inputElement.classList.add("editable-item-error");else
  244. inputElement.classList.remove("editable-item-error");}
  245. return!errorColumns.length;},_hasChanges:function(itemId)
  246. {var columns=this.columns();for(var i=0;i<columns.length;++i){var columnId=columns[i];var oldValue=this._textElementContent(itemId,columnId);var newValue=this._inputElements(itemId).get(columnId).value;if(oldValue!==newValue)
  247. return true;}
  248. return false;},_editMappingBlur:function(itemId,event)
  249. {if(itemId===null){this._onAddMappingInputBlur(event);return;}
  250. var inputElements=this._editInputElements.get(itemId).valuesArray();if(inputElements.indexOf(event.relatedTarget)!==-1)
  251. return;var listItem=this.itemForId(itemId);listItem.classList.remove("item-editing");delete this._editingId;if(!this._hasChanges(itemId))
  252. return;if(!this._validateEdit(itemId)){var columns=this.columns();for(var i=0;i<columns.length;++i){var columnId=columns[i];var editElement=this._editInputElements.get(itemId).get(columnId);this._setEditElementValue(editElement,this._textElementContent(itemId,columnId));editElement.classList.remove("editable-item-error");}
  253. return;}
  254. this._editHandler(itemId,this._data(itemId));},_onAddMappingInputBlur:function(event)
  255. {var inputElements=this._addInputElements.valuesArray();if(inputElements.indexOf(event.relatedTarget)!==-1)
  256. return;if(!this._hasChanges(null))
  257. return;if(!this._validateEdit(null))
  258. return;this._editHandler(null,this._data(null));var columns=this.columns();for(var i=0;i<columns.length;++i){var columnId=columns[i];var editElement=this._addInputElements.get(columnId);this._setEditElementValue(editElement,"");}},__proto__:WebInspector.SettingsList.prototype}
  259. WebInspector._settingsController=new WebInspector.SettingsController();;